iT邦幫忙

2026 iThome 鐵人賽

DAY 14
0
自我挑戰組

和AI學習gcp - 建立對話代理系列 第 25

Day25 Private Service Connect(PSC)

  • 分享至 

  • xImage
  •  

目前我們呼叫vertex AI的流量 是走cloud NAT出公網再打google的公開API endpoint, 今天要做的事把這條路徑改成私有網路直連 讓BFF呼叫VertexAI 不經過公網

  1. PSC Endpoint(新增一個內部 IP):在 VPC 裡建立 google_compute_address(Internal, PSC 用)+ google_compute_global_forwarding_rule,target 指向 Google 的 all-apis / vertex-ai service attachment bundle。
  2. 私有 DNS 覆寫:把 aiplatform.googleapis.com(或 .googleapis.com)解析導向剛才建立的 PSC 內部 IP,通常透過 google_dns_managed_zone(private zone)+ CNAME/A record,或用 private.googleapis.com / restricted.googleapis.com 的做法。
  3. 確認呼叫端走 VPC:BFF/Agent 目前透過 network.tf:74 的 vpc_access_connector 出站,要確認這條路徑會吃到新的私有 DNS,而不是繼續打 Cloud NAT 出去的公開路徑。
  4. 驗證:從 Cloud Run 呼叫 Vertex AI 時,觀察流量是否不再經過 NAT(例如檢查 NAT log 沒有對應連線,或用 dig/nslookup 確認 aiplatform.googleapis.com 解析到內部 IP)。

這樣做完後,即使有人拿到 Cloud Run 的 SA key,流量路徑上也少了「經過公網」這個暴露面,跟 D24 的邊界控制形成「進得去的人是誰」+「走的路是私有的」雙重防護。

現行流量(egress = "ALL_TRAFFIC"

[Client 瀏覽器]
      │ HTTPS + Firebase ID Token
      ▼
[BFF · Cloud Run]
      │ 呼叫 aiplatform.googleapis.com (Vertex AI SDK)
      │ 因為 egress=ALL_TRAFFIC → 全部出站流量都繞進 VPC
      ▼
[VPC Access Connector] → [connector_subnet]
      │
      │ DNS 解析:aiplatform.googleapis.com → Google 公開 API IP(不是你的私有網段)
      ▼
[Cloud NAT + Cloud Router]  ← network.tf:100 的 nat_config
      │ 把 connector_subnet 的私有來源 IP 轉換成 NAT 公開 IP
      ▼
[Google Front End (公開端點)]
      │ 認證靠 IAM/OAuth Bearer Token,不是靠「你是誰的網路」
      ▼
[Vertex AI]

PSC 之後

[BFF · Cloud Run]
      │
      ▼
[VPC Access Connector] → [connector_subnet]
      │
      │ DNS 解析:aiplatform.googleapis.com → 10.x.x.x(PSC Endpoint,你 VPC 自己的私有 IP)
      ▼
[PSC Endpoint (google_compute_forwarding_rule)]
      │ 走 Google 內部 Service Attachment,全程私有位址
      ▼
[Vertex AI]

加不加 PSC 的考量

傾向加:

  • 合規要求「這類資料的流量不可經過公開路由」(銀行 / PCI-DSS / 資安稽核常見硬性規定,不接受「反正認證有做」這種說法)
  • 你已經有 VPC-SC,想做到「即使憑證外洩,網路上也真的連不到」的縱深防禦
  • 想拿掉這條流量對 Cloud NAT 的依賴(Cloud NAT 有 port 數量上限,高並發時可能 exhaustion)
  • 有 on-prem / Interconnect 混合雲場景,希望地端機房也能直連 Vertex AI 而不必經過任何代理或公網

傾向不加:

  • POC / 學習專案 / 內部工具,流量量小,HTTPS + IAM 認證已經足夠
  • 沒有「禁止公開路由」這種硬性合規要求
  • 團隊還沒準備好維護 DNS override + forwarding rule 這些額外元件(PSC 常見的坑是 private DNS zone 優先權設錯,導致有些呼叫還是解析到公開 IP,反而造成「以為私有其實沒有」的假安全感)
  • 有額外的 hourly + data processing 成本,量小時不划算

上一篇
Day24 建立服務邊界
下一篇
Day26 logging monitoring, 追蹤對話成功率, token消耗量
系列文
和AI學習gcp - 建立對話代理30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言